Zadig 文档
Zadig
教程
博客
论坛
关于
中文英文
Zadig
教程
博客
论坛
关于
Zadig v3.4
Loading...
     编辑文档
     反馈问题
     社区讨论

    本页导航

    工作流

    本文主要介绍如何使用 OpenAPI 来操作 Zadig 的工作流。

    # 工作流

    # 获取工作流列表

    请求

    GET /openapi/workflows?projectKey=<项目标识>&viewName=<视图名称>
    
    1

    Query

    参数名类型描述是否必须默认值
    projectKeystring项目标识是无
    viewNamestring工作流视图名称否无

    返回说明

    参数名类型描述
    workflows[]workflow工作流列表

    workflow

    参数名类型描述
    workflow_keystring工作流标识
    workflow_namestring工作流名称
    update_bystring更新者
    update_timeint更新时间
    typestringcustom

    成功返回

    点击查看
    {
        "workflows": [
            {
                "workflow_key": "just-deploy",
                "workflow_name": "just-deploy",
                "update_by": "admin",
                "update_time": 1686217885,
                "type": "custom"
            },
            {
                "workflow_key": "xiaxianfuwu",
                "workflow_name": "下线服务",
                "update_by": "admin",
                "update_time": 1686193453,
                "type": "custom"
            }
        ]
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18

    # 获取工作流详情

    请求

    GET /openapi/workflows/custom/:workflowKey/detail?projectKey=<项目标识>
    
    1

    Query

    参数名类型描述是否必须默认值
    projectKeystring项目标识是无

    路径参数说明

    参数名类型描述是否必须默认值
    workflowKeystring工作流标识是无

    成功返回

    点击查看
    {
        "workflow_key": "build-deploy", // 工作流标识
        "workflow_name": "build-deploy", // 工作流名称
        "project_key": "lilian-test", // 项目标识
        "description": "", // 工作流描述
        "created_by": "admin", // 创建者
        "create_time": 1686192946, // 创建时间
        "updated_by": "", // 更新者
        "update_time": 1690180684, // 更新时间
        "params": [ // 工作流参数列表
            {
                "name": "code",
                "description": "",
                "type": "repo",
                "value": "",
                "repo": {
                    "source": "gitee",
                    "repo_owner": "liyue326",
                    "repo_namespace": "liyue326",
                    "repo_name": "picture",
                    "remote_name": "origin",
                    "branch": "master",
                    "hidden": false,
                    "is_primary": false,
                    "codehost_id": 4,
                    "oauth_token": "",
                    "address": "",
                    "source_from": "",
                    "param_name": "",
                    "job_name": "",
                    "service_name": "",
                    "service_module": "",
                    "repo_index": 0,
                    "submission_id": ""
                },
                "default": "",
                "is_credential": false
            },
            {
                "name": "name",
                "description": "",
                "type": "string",
                "value": "build",
                "repo": null,
                "default": "",
                "is_credential": false
            }
        ],
        "stages": [ // 工作流阶段列表
            {
                "name": "build", // 阶段名称
                "parallel": true, // 是否并发运行
                "approval": { // 审批信息
                    "enabled": false,
                    "type": "native",
                    "description": "",
                    "native_approval": {
                        "Timeout": 5,
                        "approve_users": [],
                        "NeededApprovers": 0
                    },
                    "dingtalk_approval": {
                        "Timeout": 5
                    }
                },
                "jobs": [ // 工作流job列表
                    {
                        "name": "build", // job名称
                        "type": "zadig-build", // job类型
                        "skipped": false, // 是否执行
                        "spec": { // job详细信息
                            "docker_registry_id": "630c7ad700430c131062e245",
                            "service_and_builds": [
                                {
                                    "build_name": "openapi-build",
                                    "image": "",
                                    "image_name": "service1",
                                    "key_vals": [],
                                    "repos": [],
                                    "service_module": "service1",
                                    "service_name": "service1",
                                    "share_storage_info": null
                                }
                            ]
                        },
                        "run_policy": "",
                        "service_modules": []
                    }
                ]
            },
            {
                "name": "deploy",
                "parallel": true,
                "approval": {
                    "enabled": false,
                    "type": "native",
                    "description": "",
                    "native_approval": {
                        "Timeout": 5,
                        "approve_users": [],
                        "NeededApprovers": 0
                    },
                    "dingtalk_approval": {
                        "Timeout": 5
                    }
                },
                "jobs": [
                    {
                        "name": "deploy",
                        "type": "zadig-deploy",
                        "skipped": false,
                        "spec": {
                            "deploy_contents": [
                                "image",
                                "vars"
                            ],
                            "deploy_type": "",
                            "env": "dev",
                            "job_name": "build",
                            "origin_job_name": "",
                            "production": false,
                            "service_and_images": [],
                            "services": [
                                {
                                    "key_vals": [],
                                    "latest_key_vals": [],
                                    "latest_variable_kvs": [],
                                    "service_name": "service2",
                                    "updatable": false,
                                    "update_config": false,
                                    "variable_configs": [],
                                    "variable_kvs": [],
                                    "variable_yaml": ""
                                },
                                {
                                    "key_vals": [],
                                    "latest_key_vals": [],
                                    "latest_variable_kvs": [],
                                    "service_name": "service1",
                                    "updatable": true,
                                    "update_config": false,
                                    "variable_configs": [
                                        {
                                            "use_global_variable": false,
                                            "variable_key": "cpuLimit"
                                        },
                                        {
                                            "use_global_variable": false,
                                            "variable_key": "memoryLimit"
                                        },
                                        {
                                            "use_global_variable": false,
                                            "variable_key": "port"
                                        }
                                    ],
                                    "variable_kvs": [],
                                    "variable_yaml": ""
                                }
                            ],
                            "skip_check_run_status": false,
                            "source": "fromjob"
                        },
                        "run_policy": "",
                        "service_modules": []
                    },
                    {
                        "name": "default",
                        "type": "plugin",
                        "skipped": false,
                        "spec": {
                            "plugin": {
                                "args": [
                                    "echo $(inputs.CONTENT)"
                                ],
                                "category": "",
                                "cmds": [
                                    "/bin/sh",
                                    "-c"
                                ],
                                "description": "hello world",
                                "envs": [
                                    {
                                        "name": "CONTENT",
                                        "value": "$(inputs.CONTENT)"
                                    }
                                ],
                                "image": "alpine/curl:3.14",
                                "inputs": [
                                    {
                                        "default": "hello world",
                                        "description": "content to print",
                                        "is_credential": false,
                                        "name": "CONTENT",
                                        "repo": null,
                                        "type": "string",
                                        "value": "hello world"
                                    }
                                ],
                                "is_offical": false,
                                "name": "hello-world",
                                "outputs": [],
                                "repo_url": "",
                                "version": "v0.0.1"
                            },
                            "properties": {
                                "build_os": "",
                                "cache": {
                                    "medium_type": "",
                                    "nfs_properties": {
                                        "provision_type": "",
                                        "pvc": "",
                                        "storage_class": "",
                                        "storage_size_in_gib": 0,
                                        "subpath": ""
                                    },
                                    "object_properties": {
                                        "id": ""
                                    }
                                },
                                "cache_dir_type": "",
                                "cache_enable": false,
                                "cache_user_dir": "",
                                "cluster_id": "",
                                "custom_envs": [],
                                "envs": [],
                                "image_from": "",
                                "image_id": "",
                                "log_file_name": "",
                                "namespace": "",
                                "params": [],
                                "registries": [],
                                "res_req": "low",
                                "res_req_spec": {
                                    "cpu_limit": 1000,
                                    "gpu_limit": "",
                                    "memory_limit": 512
                                },
                                "retry": 0,
                                "share_storage_details": [],
                                "timeout": 60
                            }
                        },
                        "run_policy": "",
                        "service_modules": []
                    }
                ]
            }
        ],
        "notify_ctls": [ // 通知配置信息列表
            {
                "enabled": true,
                "webhook_type": "wechat",
                "weChat_webHook": "xxx",
                "notify_type": [
                    "created",
                    "failed"
                ]
            }
        ],
        "share_storages": [], // 共享卷信息
        "concurrency_limit": 1 // 并发执行数量
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262

    # 获取工作流任务列表

    请求

    GET /openapi/workflows/custom/:workflowKey/tasks?projectKey=<项目标识>
    
    1

    query 参数说明

    参数名类型描述是否必须默认值
    projectKeystring项目标识是无
    pageNumint分页-当前页数否1
    pageSizeint分页-单页展示条目否50

    路径参数说明

    参数名类型描述是否必须默认值
    workflowKeystring工作流标识是无

    返回说明

    参数名类型描述
    totalint工作流任务总数
    workflow_tasks[]workflow_task工作流任务列表

    workflow_task

    参数名类型描述
    workflow_keystring工作流标识
    workflow_namestring工作流名称
    project_keystring项目标识
    task_idint工作流任务ID
    task_creatorstring工作流任务执行者
    create_timeint工作流任务创建时间
    start_timeint工作流任务开始时间
    end_timeint工作流任务结束时间
    statusstring任务状态包括:created(创建中)、running(运行中)、passed(通过)、failed(失败)、timeout(超时)、cancelled(取消)

    正常返回

    {
        "total": 15,
        "workflow_tasks": [
            {
                "workflow_key": "build-deploy",
                "workflow_name": "build-deploy",
                "project_key": "lilian-test",
                "task_id": 15,
                "create_time": 1688543613,
                "task_creator": "webhook",
                "start_time": 1688543615,
                "end_time": 1688543636,
                "status": "passed"
            }
        ]
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16

    异常返回

    {
        "code": 400,
        "description": "workflow name is required",
        "extra": {},
        "message": "Bad Request",
        "type": "error"
    }
    
    1
    2
    3
    4
    5
    6
    7

    # 获取工作流任务详情

    GET /openapi/workflows/custom/task?taskId=<工作流任务ID>&workflowKey=<工作流标识>
    
    1

    Query

    参数名类型描述默认值是否必须
    taskIdint工作流任务 ID无是
    workflowKeystring工作流标识无是

    正常返回

    点击查看
    {
        "task_id": 24,                              # 工作流任务序号 ID
        "workflow_key": "build-images",            # 工作流标识
        "params": [                                 # 工作流变量
            {
                "name": "USERNAME",
                "description": "",
                "type": "string",
                "value": "zadig",
                "default": "",
                "is_credential": false
            }
        ],
        "status": "running",                        # 工作流任务状态
        "task_creator": "admin",                    # 工作流任务触发者
        "create_time": 1664161285,                  # 工作流任务创建时间,Unix 时间戳格式
        "start_time": 1664161286,                   # 工作流任务开始执行时间,Unix 时间戳格式
        "end_time": 1664172997,                     # 工作流任务执行结束时间,Unix 时间戳格式
        "stages": [                                 # 工作流任务包含的所有阶段详情
            {
                "name": "构建",                      # 阶段名称
                "status": "passed",                 # 阶段状态
                "start_time": 1664161286,           # 阶段执行开始时间,Unix 时间戳格式
                "end_time": 1664172974,             # 阶段执行结束时间,Unix 时间戳格式
                "jobs": [                           # 阶段中包含的所有任务详情
                    {
                        "name": "a-myapp-1-build-myapps",
                        "type": "zadig-build",      # 内置构建任务
                        "status": "passed",         # 任务状态
                        "start_time": 1664172967,   # 任务执行开始时间,Unix 时间戳格式
                        "end_time": 1664172974,     # 任务执行结束时间,Unix 时间戳格式
                        "spec": {                   # 构建任务执行详细信息(包括代码信息、镜像信息、服务信息、服务组件信息、构建变量信息)
                            "repos": [              # 代码信息
                                {
                                    "source": "gitee",
                                    "repo_owner": "kr-test-dev",
                                    "repo_namespace": "kr-test-dev",
                                    "repo_name": "zadig",
                                    "remote_name": "origin",
                                    "branch": "main",
                                    "commit_id": "a13120997b95d8b63f2b5b29c700f89d38a5de54",
                                    "commit_message": "update pkg/microservice/warpdrive/config/const.go.\n\nSigned-off-by: grandy <10196377+grandy@user.noreply.gitee.com>",
                                    "address": "https://gitee.com",
                                    "author_name": "grandy"
                                }
                            ],
                            "image": "koderover.tencentcloudcr.com/koderover-demo/myapp-1:20220926141606-26-main", # 镜像信息
                            "service_name": "a",            # 服务名称
                            "service_module": "myapp-1",    # 服务组件名称
                            "envs": [                       # 构建变量信息
                                {
                                    "key": "username",
                                    "value": "admin",
                                    "type": "string",
                                    "is_credential": false
                                },
                                {
                                    "key": "password",
                                    "value": "zadig",
                                    "type": "string",
                                    "is_credential": true
                                },
                                {
                                    "key": "version",
                                    "value": "1",
                                    "type": "string",
                                    "is_credential": false
                                }
                            ]
                        }
                    }
                ]
            },
            {
                "name": "部署",
                "status": "passed",
                "start_time": 1664172974,
                "end_time": 1664172990,
                "approval": {                               # 审批信息
                    "enabled": true,                        # 需要审批
                    "approve_users": [                      # 审批人列表
                        {
                            "user_name": "admin",
                            "reject_or_approve": "approve",
                            "comment": "LGTM",
                            "operation_time": 1664172985
                        }
                    ],
                    "timeout": 120,                         # 审批超时时间,单位:分钟
                    "needed_approvers": 1,                  # 需要满足的审批通过人数
                    "description": "需审批通过方可部署",       # 审批描述
                    "reject_or_approve": "approve"          # approve:通过;reject:拒绝
                },
                "jobs": [
                    {
                        "name": "a-myapp-1-deploy-myapps",
                        "type": "zadig-deploy",             # 内置部署任务
                        "status": "passed",
                        "start_time": 1664172986,
                        "end_time": 1664172990,
                        "spec": {                           # 部署任务的详细信息
                            "env": "dev",
                            "skip_check_run_status": false, # 是否关闭服务状态检测
                            "service_and_images": [         # 部署的服务、服务组件、镜像信息
                                {
                                    "service_name": "a",
                                    "service_module": "myapp-1",
                                    "image": "koderover.tencentcloudcr.com/koderover-demo/myapp-1:20220926141606-26-main"
                                }
                            ]
                        }
                    }
                ]
            },
            {
                "name": "通用任务",
                "status": "passed",
                "start_time": 1664172990,
                "end_time": 1664172993,
                "jobs": [
                    {
                        "name": "echo-hello",
                        "type": "freestyle",                # 通用任务
                        "status": "passed",
                        "start_time": 1664172990,
                        "end_time": 1664172993,
                        "spec": {                           # 通用任务执行详细信息
                            "repos": [
                                {
                                    "source": "gitee",
                                    "repo_owner": "kr-test-dev",
                                    "repo_namespace": "kr-test-dev",
                                    "repo_name": "demo-test",
                                    "remote_name": "origin",
                                    "branch": "master",
                                    "commit_id": "2000aba9195bfce73b0a676e48c0ebfe2f59a4a9",
                                    "commit_message": "update org-debug.txt.\n\nSigned-off-by: grandy <10196377+grandy@user.noreply.gitee.com>",
                                    "address": "https://gitee.com",
                                    "author_name": "grandy"
                                }
                            ],
                            "image": "",
                            "service_name": "",
                            "service_module": "",
                            "envs": [
                                {
                                    "key": "myName",
                                    "value": "zadig",
                                    "type": "string",
                                    "is_credential": false
                                }
                            ]
                        }
                    }
                ]
            },
            {
                "name": "自定义任务",
                "status": "passed",
                "start_time": 1664172993,
                "end_time": 1664172997,
                "jobs": [
                    {
                        "name": "say-hi",
                        "type": "plugin",                   # 自定义任务
                        "status": "passed",
                        "start_time": 1664172993,
                        "end_time": 1664172997,
                        "error": "",
                        "spec": {
                            "name": "输出 Hello 问候信息",
                            "is_offical": false,
                            "description": "问候指定用户",
                            "repo_url": "",
                            "version": "v0.0.1",
                            "image": "koderover.tencentcloudcr.com/koderover-public/greeting-bot:20220923-amd64",
                            "args": [],
                            "cmds": [],
                            "envs": [
                                {
                                    "name": "WHO_AM_I",
                                    "value": "Zadig"
                                },
                                {
                                    "name": "WEATHER_STATUS",
                                    "value": "sunny"
                                }
                            ],
                            "inputs": [
                                {
                                    "name": "who_am_i",
                                    "description": "who am i",
                                    "type": "string",
                                    "value": "zadig",
                                    "default": "zadig",
                                    "is_credential": false
                                },
                                {
                                    "name": "weather_status",
                                    "description": "what's the weather like today",
                                    "type": "choice",
                                    "value": "sunny",
                                    "choice_否": [
                                        "sunny",
                                        "cloudy",
                                        "rainy"
                                    ],
                                    "default": "sunny",
                                    "is_credential": false
                                }
                            ],
                            "outputs": []
                        }
                    }
                ]
            }
        ],
        "project_key": "simple-service-demo",              # 项目标识
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219

    异常返回

    # 指定的工作流任务不存在
    {
        "code": 500,
        "description": "mongo: no documents in result",
        "message": "Internal Error: "
    }
    
    1
    2
    3
    4
    5
    6

    # 执行工作流

    请求

    POST /openapi/workflows/custom/task
    
    1

    body 参数样例

    点击查看
    {
        "project_key": "helm", // 项目标识
        "workflow_key": "test-openapi", // 工作流标识
        "parameters": [ // 全局变量
            {
                "name": "test",
                "type": "string",
                "value": "zadig"
            },
            {
                "name": "abc",
                "type": "choice",
                "value": "123"
            },
            {
                "name": "repo1",
                "type: "repo",
                "repo": {
                    "codehost_name": "gitlab",
                    "repo_namespace": "kr-poc",
                    "repo_name": "num_test",
                    "branch": "master",
                    "prs": [
                        1
                    ]
                }
            }
        ],
        "inputs": [
            {
                "job_name": "build-myapps",
                "job_type": "zadig-build",
                "parameters": {
                    "registry": "https://koderover.******.com/test",
                    "service_list": [
                        {
                            "service_module": "aslan",
                            "service_name": "zadig",
                            "repo_info": [{
                                "codehost_name": "koderover",
                                "repo_namespace": "koderover",
                                "repo_name": "zadig",
                                "branch": "main"
                            }]
                            inputs: [{
                                "key": "username",
                                "value": "admin"
                            },
                            {
                                "key": "password",
                                "value": "Zadig"
                            }]
                        }
                    ]
                }
            },
            {
                "job_name": "deploy-myapps",
                "job_type": "zadig-deploy",
                "parameters": {
                    "env_name": "dev",
                    "service_list": [
                    {
                        "service_name": "zadig",
                        "service_module": "aslan",
                        "image_name": "koderover.******.com/test/aslan:main"
                    },
                    {
                        "service_name": "zadig",
                        "service_module": "zadig-portal",
                        "image_name": "koderover.******.com/test/zadig-portal:main"
                    }
                    ]
                }
            },
            {
                "job_name": "jira-issue-update",
                "job_type": "freestyle",
                "parameters": {
                    "kv": [
                        {
                            "key": "IssueID",
                            "value": "ZAD-10126"
                        },
                        {
                            "key": "FromStatus",
                            "value": "Testing"
                        },
                        {
                            "key": "TargetStatus",
                            "value": "ToBeReleased"
                        }
                    ]
                }
            },
            {
                "job_name": "deploy-my-app",
                "job_type": "custom-deploy",
                "parameters": {
                    "target_list": [
                        {
                            "workload_type": "Deployment",
                            "workload_name": "service2",
                            "container_name": "service2",
                            "image_name": "koderover.***.com/test/service2:0505"
                        }
                    ]
                }
            },
            {
                "job_name": "sql",
                "job_type": "sql",
                "parameters": {
                    "database_name": "mysql",
                    "sql": "show databases;"
                }
            }
        ]
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119

    body 参数说明

    参数名类型描述默认值是否必须
    project_keystring项目标识无是
    workflow_keystring工作流标识无是
    parameters[]Parameter全局变量无否
    inputs[]Input执行工作流的具体参数无是

    Parameter

    参数名类型描述默认值是否必须
    namestring变量名无是
    typestring类型, 支持 string/text/choice/repo无是
    valuestring变量值,当类型为 string/text/choice 时使用该字段无是
    repoReporepo 类型的变量值,仅当类型为 repo 时使用该字段无否

    Repo

    参数名类型描述默认值是否必须
    codehost_namestring代码源标识无是
    repo_namespacestringrepo 的 namespace无是
    repo_namestringrepo 的名称无是
    branchstring分支名无是
    prs[]intpr 编号无否

    Input 参数说明

    下面将分开介绍内置构建任务、部署任务、Kubernetes 部署任务、通用任务的触发参数。

    构建任务

    {
        "job_name": "build-myapps",                           # 构建任务名称
        "job_type": "zadig-build",                            # 构建任务类型,指定为 zadig-build
        "parameters": {
            "registry": "https://koderover.******.com/test",  # 镜像仓库信息
            "service_list": [                                 # 要构建的服务信息
                {
                    "service_module": "aslan",                # 服务组件名称
                    "service_name": "zadig",                  # 服务名称
                    "repo_info": [{                           # 构建该服务组件的代码库信息
                        "codehost_name": "koderover",         # 代码源标识
                        "repo_namespace": "koderover",        # 代码库组织名/用户名
                        "repo_name": "zadig",                 # 代码库名称
                        "branch": "main"                      # 代码库分支
                    }]
                    inputs: [{                                # 构建变量信息,若设置为固定值或全局变量,则无需指定
                        "key": "username",
                        "value": "admin"
                    },
                    {
                        "key": "password",
                        "value": "Zadig"
                    }]
                },
                {
                    "service_module": "zadig-portal",
                    "service_name": "zadig",
                    "repo_info": [{
                        "codehost_name": "koderover",
                        "repo_namespace": "koderover",
                        "repo_name": "zadig-portal",
                        "branch": "main"
                    }]
                }
            ]
        }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37

    部署任务

    {
        "job_name": "deploy-myapps",                              # 部署任务名称
        "job_type": "zadig-deploy",                               # 部署任务类型,指定为 zadig-deploy
        "parameters": {                                           # 部署参数
            "env_name": "dev",                                    # 待部署环境信息,若设置为固定值或全局变量,则无需配置该字段
            "service_list": [                                     # 待部署服务信息,若设置为其他任务输出,则无需配置该字段
            {
                "service_name": "zadig",                          # 待部署服务名称
                "service_module": "aslan",                        # 待部署服务组件名称
                "image_name": "koderover.***.com/test/aslan:main" # 待部署服务组件的镜像
            },
            {
                "service_name": "zadig",
                "service_module": "zadig-portal",
                "image_name": "koderover.***.com/test/zadig-portal:main"
            }
        ]
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18

    Kubernetes 部署任务

    {
        "job_name": "deploy-my-app",                                     # Kubernetes 部署任务名称
        "job_type": "custom-deploy",                                     # Kubernetes 部署任务类型,指定为 custom-deploy
        "parameters": {
            "target_list": [                                             # 待部署容器信息,若设置为固定值,则无需指定
                {
                    "workload_type": "Deployment",                       # 待部署容器应用的类型,支持 Deployment 以及 StatefulSet
                    "workload_name": "service2",                         # 待部署容器应用的名称
                    "container_name": "service2",                        # 待部署容器应用的 container 名称
                    "image_name": "koderover.***.com/test/service2:0505" # 待部署容器的镜像信息
                }
            ]
        }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

    通用任务

    {
        "job_name": "jira-issue-update",            # 通用任务名称
        "job_type": "freestyle",                    # 通用任务类型,指定为 freestyle
        "parameters": {                             # 通用任务中的参数和值,若设置为固定值或全局变量,则无需指定
            "kv": [
                {
                    "key": "IssueID",
                    "value": "ZAD-10126"
                },
                {
                    "key": "FromStatus",
                    "value": "Testing"
                },
                {
                    "key": "TargetStatus",
                    "value": "ToBeReleased"
                }
            ],
            "repo_info": [                          # 通用任务中的代码库信息
                {
                    "codehost_name": "koderover",   # 代码源标识
                    "repo_namespace": "koderover",  # 代码库组织名/用户名
                    "repo_name": "zadig",           # 代码库名称
                    "branch": "task-mgr"            # 代码库分支
                }
            ]
        }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28

    测试任务

    {
        "job_name": "test-myapps",                            # 测试任务名称
        "job_type": "zadig-test",                             # 构建任务类型,指定为 zadig-test
        "parameters": {
            "testing_list": [                                 # 要测试的任务信息
                {
                    "testing_name": "unit-test",              # 测试任务名称
                    "repo_info": [{                           # 测试任务的代码库信息
                        "codehost_name": "koderover",         # 代码源标识
                        "repo_namespace": "koderover",        # 代码库组织名/用户名
                        "repo_name": "zadig",                 # 代码库名称
                        "branch": "main"                      # 代码库分支
                    }]
                    inputs: [{                                # 测试变量信息,若设置为固定值或全局变量,则无需指定
                        "key": "username",
                        "value": "admin"
                    },
                    {
                        "key": "password",
                        "value": "Zadig"
                    }]
                },
                {
                    "testing_name": "integration-test",
                    "repo_info": [{
                        "codehost_name": "koderover",
                        "repo_namespace": "koderover",
                        "repo_name": "zadig-portal",
                        "branch": "main"
                    }]
                }
            ]
        }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34

    代码扫描任务

    {
        "job_name": "scan-myapps",                            # 代码扫描任务名称
        "job_type": "zadig-scanning",                         # 构建任务类型,指定为 zadig-scanning
        "parameters": {
            "scanning_list": [                                # 代码扫描的任务信息
                {
                    "scanning_name": "scan",                  # 代码扫描任务名称
                    "repo_info": [{                           # 代码扫描任务的代码库信息
                        "codehost_name": "koderover",         # 代码源标识
                        "repo_namespace": "koderover",        # 代码库组织名/用户名
                        "repo_name": "zadig",                 # 代码库名称
                        "branch": "main"                      # 代码库分支
                    }]
                },
                {
                    "scanning_name": "scan-1",
                    "repo_info": [{
                        "codehost_name": "koderover",
                        "repo_namespace": "koderover",
                        "repo_name": "zadig-portal",
                        "branch": "main"
                    }]
                }
            ]
        }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26

    SQL 任务

    {
        "job_name": "sql",                                  # SQL 任务名称
        "job_type": "sql",                                  # SQL 任务类型,指定为 sql
        "parameters": {
            "database_name": "mysql",                       # 数据库名称
            "sql": "show databases;"                        # SQL 语句
        }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8

    自定义任务

    {
        "job_name": "plugin-task",                           # 自定义任务名称
        "job_type": "plugin",                                # 自定义任务类型,指定为 plugin
        "parameters": {                                      # 自定义任务变量
            "kv": [
                {
                    "key": "CONTENT",
                    "value": "hello world"
                }
            ]
        }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    正常返回

    {
        "project_name": "simple-service-demo", # 项目标识
        "workflow_name": "openapi-test",       # 工作流名称
        "task_id": 20                          # 工作流任务执行的序号 ID
    }
    
    1
    2
    3
    4
    5

    # 取消工作流任务

    请求

    DELETE /openapi/workflows/custom/task?taskId=<taskId>&workflowKey=<工作流标识>
    
    1

    Query

    参数名类型描述默认值是否必须
    taskIdint工作流任务 ID无是
    workflowKeystring工作流标识无是

    正常返回

    {
        "message": "success"
    }
    
    1
    2
    3

    异常返回

    # 指定的工作流任务已成功运行完毕
    {
        "code": 6163,
        "description": "task: build-images:20 is passed, cannot cancel",
        "extra": {},
        "message": "取消工作流任务失败",
        "type": "error"
    }
    
    # 指定的工作流或者任务不存在
    {
        "code": 6163,
        "description": "mongo: no documents in result",
        "extra": {},
        "message": "取消工作流任务失败",
        "type": "error"
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17

    # 重试工作流任务

    请求

    POST /openapi/workflows/custom/:workflowKey/task/:taskID?projectKey=<项目标识>
    
    1

    query 参数说明

    参数名类型描述是否必须默认值
    projectKeystring项目标识是无

    路径参数说明

    参数名类型描述是否必须默认值
    workflowKeystring工作流标识是无
    taskIDint工作流任务ID是无

    正常返回

    {
      "message": "success"
    }
    
    1
    2
    3

    异常返回

    {
        "code": 6161,
        "description": "mongo: no documents in result",
        "extra": {},
        "message": "获取工作流任务失败",
        "type": "error"
    }
    
    1
    2
    3
    4
    5
    6
    7

    # 审批工作流

    提示

    适用于 Zadig 审批。

    请求

    POST /openapi/workflows/custom/task/approve
    
    1

    body 参数说明

    参数名类型描述默认值是否必须
    task_idint工作流任务 ID无是
    workflow_keystring工作流标识无是
    stage_namestring工作流待审批的阶段名称无是
    approvebool是否审批通过false否
    commentstring审批信息无否

    body 参数示例

    {
        "task_id": 2,
        "workflow_key": "infra-dev-workflow",
        "stage_name": "deploy",
        "approve": true,
        "comment": "LGTM"
    }
    
    1
    2
    3
    4
    5
    6
    7

    正常返回

    {
        "message": "success"
    }
    
    1
    2
    3

    异常返回

    # 指定参数的阶段不需要审批
    {
        "code": 6169,
        "description": "workflow build-images ID 23 stage deploy-myapps do not need approve",
        "extra": {},
        "message": "批准工作流任务失败",
        "type": "error"
    }
    
    
    1
    2
    3
    4
    5
    6
    7
    8
    9

    # 创建工作流

    请求

    POST /api/aslan/workflow/v4
    
    1

    body 参数说明

    提示

    该接口的参数相对复杂,自己组装比较费力。推荐先在页面中创建工作流 -> 在配置页面点击 YAML -> 复制 YAML 内容后借助在线转换工具(opens new window)来快速获得参数。

    参数名类型描述默认值是否必须
    namestring工作流标识无是
    display_namestring工作流名称无是
    projectstring项目标识无是
    descriptionstring工作流描述信息无否
    concurrency_limitint工作流任务并发数,-1 表示无限制,0 表示不可执行0是
    stages[]Stage阶段配置无否

    Stage 参数说明

    参数名描述类型必填
    name阶段名称string是
    parallel是否开启并发执行bool是
    jobs任务配置[]interface{}是

    body 参数示例

    以下 body 示例中包含 构建 -> 部署 -> 测试 -> 分发四个阶段:

    点击查看
    {
        "name": "workflow-demo",
        "display_name": "workflow-demo",
        "project": "demo",
        "description": "workflow-demo description",
        "concurrency_limit": 5,
        "stages": [
            {
                "name": "构建",
                "parallel": true,
                "jobs": [
                    {
                        "name": "build",
                        "type": "zadig-build",
                        "run_policy": "",
                        "spec": {
                            "docker_registry_id": "62c**********",
                            "service_and_builds": [
                                {
                                    "service_name": "service1",
                                    "service_module": "service1",
                                    "image_name": "nginx",
                                    "value": "service1/service1",
                                    "build_name": "build-demo"
                                }
                            ]
                        }
                    }
                ]
            },
            {
                "name": "部署",
                "parallel": true,
                "approval": {
                    "enabled": true,
                    "type": "native",
                    "native_approval": {
                        "approve_users": [
                            {
                                "user_name": "admin",
                                "user_id": "9792310b-**********"
                            },
                            {
                                "user_name": "sre-admin",
                                "user_id": "9837370s-**********"
                            }
                        ],
                        "timeout": 5,
                        "needed_approvers": 1
                    }
                },
                "jobs": [
                    {
                        "name": "deploy",
                        "type": "zadig-deploy",
                        "spec": {
                            "env": "dev",
                            "production": false,
                            "deploy_contents": [
                                "image"
                            ],
                            "skip_check_run_status": false,
                            "source": "fromjob",
                            "job_name": "build",
                            "service_and_images": [
                                {
                                    "service_name": "service1",
                                    "service_module": "service1",
                                    "value": "service1/service1"
                                }
                            ]
                        }
                    }
                ]
            },
            {
                "name": "测试",
                "parallel": true,
                "jobs": [
                    {
                        "name": "test",
                        "type": "zadig-test",
                        "spec": {
                            "test_type": "service_test",
                            "source": "fromjob",
                            "job_name": "build",
                            "service_and_tests": [
                                {
                                    "service_name": "service1",
                                    "service_module": "service1",
                                    "name": "smoke-test",
                                    "project_name": "voting-app"
                                }
                            ]
                        }
                    }
                ]
            },
            {
                "name": "分发",
                "parallel": true,
                "jobs": [
                    {
                        "name": "common",
                        "type": "freestyle",
                        "run_policy": "",
                        "spec": {
                            "properties": {
                                "timeout": 60,
                                "res_req": "low",
                                "res_req_spec": {
                                    "cpu_limit": 1000,
                                    "memory_limit": 512
                                },
                                "cluster_id": "",
                                "build_os": "focal",
                                "image_id": "630xxxxxxxxxxxx",
                                "image_from": "koderover",
                                "envs": [
                                    {
                                        "key": "key1",
                                        "value": "val1",
                                        "type": "string",
                                        "is_credential": false
                                    }
                                ],
                                "cache_enable": true,
                                "cache_dir_type": "workspace",
                                "cache_user_dir": ""
                            },
                            "steps": [
                                {
                                    "name": "tools",
                                    "type": "tools",
                                    "spec": {
                                        "installs": [
                                            {
                                                "name": "go",
                                                "version": "1.19.3",
                                                "id": "go1.19.3"
                                            }
                                        ]
                                    }
                                },
                                {
                                    "name": "git",
                                    "type": "git",
                                    "spec": {
                                        "repos": [
                                            {
                                                "codehost_id": 23,
                                                "repo_owner": "owner1",
                                                "repo_name": "hello",
                                                "source": "GitHub",
                                                "branch": "main",
                                                "checkout_path": "",
                                                "remote_name": "origin",
                                                "submodules": false,
                                                "hidden": false,
                                                "repo_namespace": "owner1"
                                            }
                                        ]
                                    }
                                },
                                {
                                    "name": "shell",
                                    "type": "shell",
                                    "spec": {
                                        "script": "#!/bin/bash\nset -e\necho hello"
                                    }
                                }
                            ]
                        }
                    }
                ]
            },
            {
                "name": "镜像分发",
                "parallel": true,
                "jobs": [
                    {
                        "name": "image-release",
                        "type": "zadig-distribute-image",
                        "run_policy": "",
                        "isCreate": true,
                        "spec": {
                            "source": "fromjob",
                            "job_name": "build",
                            "source_registry_id": "",
                            "target_registry_id": "630xxxxxxxxxxxx",
                            "targets": [
                            {
                                "service_name": "n-1",
                                "service_module": "nginx-latest",
                                "image_name": "nginx",
                                "value": "n-1/nginx-latest"
                            }
                            ],
                            "timeout": 10,
                            "cluster_id": "",
                            "params": []
                        }
                    }
                ]
            }
        ]
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207

    # 更新工作流

    请求

    PUT /api/aslan/workflow/v4/:name?projectName=<project_name>
    
    1

    query 参数说明

    参数名类型描述是否必须默认值
    projectNamestring项目标识是无

    路径参数说明

    参数名类型描述是否必须默认值
    namestring工作流名称是无

    body 参数说明

    参考创建工作流参数

    # 删除工作流

    请求

    DELETE /openapi/workflows/custom?workflowKey=<工作流标识>&projectKey=<项目标识>
    
    1

    query 参数说明

    参数名类型描述默认值是否必须
    workflowKeystring工作流标识无是
    projectKeystring项目标识无是

    正常返回

    {
      "message": "success"
    }
    
    1
    2
    3

    # 工作流视图

    # 获取工作流视图列表

    请求

    GET /openapi/workflows/view?projectKey=<项目标识>
    
    1

    query 参数说明

    参数名类型描述是否必须默认值
    projectKeystring项目标识是无

    返回说明

    参数名说明类型
    name视图名称string
    project_key项目标识string
    update_time更新时间int
    update_by更新者string
    workflows工作流列表[]workflow

    workflow

    参数名说明类型
    workflow_key工作流标识string
    workflow_typecustomstring

    正常返回

    点击查看
    [
        {
            "name": "test-view",
            "project_key": "lilian-test",
            "workflows": [
                {
                    "workflow_key": "xiaxianfuwu",
                    "workflow_type": "custom",
                }
            ],
            "update_time": 1689329334,
            "update_by": "admin"
        }
    ]
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

    # 创建工作流视图

    请求

    POST /openapi/workflows/view
    
    1

    body 参数说明

    参数名说明类型必填
    project_key项目标识string是
    name工作流视图名称string是
    workflow_list工作流列表[]Workflow是

    Workflow 参数说明

    参数名说明类型必填
    workflow_key工作流标识string是
    workflow_typecustomstring是

    body 参数示例

    点击查看
    {
        "project_key": "demo",
        "name": "view-demo",
        "workflow_list": [
            {
                "workflow_key": "dev",
                "workflow_type": "custom"
            },
            {
                "workflow_key": "nacos-config-update",
                "workflow_type": "custom"
            }
        ]
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

    正常返回

    {
      "message": "success"
    }
    
    1
    2
    3

    # 编辑工作流视图

    请求

    PUT /openapi/workflows/view/:viewName?projectKey=<项目标识>
    
    1

    query 参数说明

    参数名类型描述是否必须默认值
    projectKeystring项目标识是无

    路径参数说明

    参数名类型描述是否必须默认值
    viewNamestring视图名称是无

    body 参数说明

    参数名说明类型必填默认值
    workflow_list工作流列表[]Workflow是无

    workflow

    参数名说明类型必填默认值
    workflow_key工作流标识string是无
    workflow_typecustomstring是无
    enabledtrue:将工作流加入视图
    false:将工作流从视图中删除
    bool是无

    body参数示例

    点击查看
    {
        "workflow_list":[
            {
                "workflow_key":"build-deploy",
                "workflow_type":"custom",
                "enabled":true
            }
        ]
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9

    正常返回

    {
      "message": "success"
    }
    
    1
    2
    3

    # 删除工作流视图

    请求

    DELETE /openapi/workflows/view/:viewName?projectKey=<项目标识>
    
    1

    query 参数说明

    参数名类型描述是否必须默认值
    projectKeystring项目标识是无

    路径参数说明

    参数名类型描述是否必须默认值
    viewNamestring视图名称是无

    正常返回

    {
        "message": "success"
    }
    
    1
    2
    3

    异常返回

    {
        "code": 6894,
        "description": "find workflow view error: mongo: no documents in result",
        "extra": {},
        "message": "删除视图失败",
        "type": "error"
    }
    
    1
    2
    3
    4
    5
    6
    7

    # 工作流预审批

    # 创建预审批单

    请求

    POST /openapi/ticket/approval
    
    1

    Body 参数说明

    参数名类型描述是否必须默认值
    project_keystring项目标识是无
    approval_idstring第三方系统审批单号是无
    statusint审批单状态:
    0-审批单无效
    1-审批单生效
    是无
    envsstring可选环境限制,空为无限制否无
    services[]ServiceInfo可选服务限制,空为无限制否无
    users[]User可执行用户限制,空为无限制否无
    execution_window_startint可执行时间窗口开始时间,空为无限制否无
    execution_window_endint可执行时间窗口结束时间,空为无限制否无

    ServiceInfo 结构体

    参数名类型描述是否必须默认值
    service_namestring服务名是无
    service_modulestring服务组件是无

    User 结构体

    参数名类型描述是否必须默认值
    namestring用户姓名,用于审批单展示是无
    emailstring邮箱,用于与 Zadig 系统中的用户系统对接是无

    正常返回

    {
      "code": 1,
      "message": "success"
    }
    
    1
    2
    3
    4

    错误返回

    {
      "code": 500,
      "description": "...",
      "message": "Internal Error"
    }
    
    1
    2
    3
    4
    5

    # 工作流日志

    # 查看工作流任务实时日志

    当工作流任务执行时,可以通过该接口查看工作流任务的实时日志。

    请求

    GET /openapi/logs/sse/v4/workflow/<工作流标识>/<工作流任务ID>/<工作流JobTask标识>/<tails行数>
    
    1

    返回示例

    点击查看

    该接口返回的是一个 SSE 流,返回的数据格式如下:

    "log message line 1"
    "log message line 2"
    ...
    
    1
    2
    3

    # 查看工作流任务完整日志

    当工作流任务执行完毕后,可以通过该接口查看工作流任务的完整日志。

    请求

    GET /openapi/logs/log/v4/workflow/<工作流标识>/<工作流任务ID>/<工作流JobTask标识>
    
    1

    返回示例

    点击查看
    "log message line 1"
    "log message line 2"
    ...
    
    1
    2
    3

    ← 项目环境→

    资源
    教程
    论坛
    博客
    公司
    关于
    客户故事
    加入我们
    联系我们
    微信扫一扫
    hello@koderover.com

    © 2026 筑栈(上海)信息技术有限公司 沪 ICP 备 19000177 号 - 1

    •  跟随系统
    •  浅色模式
    •  深色模式
    •  阅读模式